Pour lancer une distribution linux sans avoir à graver sur Cd, les solutions existantes ont le plus souvent le recours à une clé USB gravée avec :
On peut aussi utiliser Virtualbox qui ne nécessite pas de clé USB mais dont l'inconvénient est qu'il ne teste pas votre configuration mais un matériel émulé.
Voici la procédure à suivre pour lancer vos ISOs présents sur le disque dur directement avec Grub 2.
grub-install -V
Par défaut, Ubuntu monte le support d'installation dans /isodevice. On n'en a pas besoin car Ubuntu est lancé en ram. Pour éviter que l'installation ne soit bloquée, on lancera la commande:
sudo umount -lrf /isodevice
Maintenant, il suffit de double cliquer sur "installer ubuntu".
Dans ce tutoriel, les fichiers "iso" sont tous stockés dans un dossier /isos à la racine d'une des partitions présentes dans l'ordinateur.
sudo update-grub
Une méthode modulaire (plus souple) est d'utiliser un fichier de configuration par système d'exploitation et de le référencer dans grub.cfg : voir la section Une configuration sans être root
Lorsque Grub est en mode EFI, on peut activer le menu par défaut intégré à l'iso avec ce menu type:
menuentry ".. Xubuntu Focal 20.04 (Daily build)" {
iso_path="/isos/focal-desktop-amd64.iso"
export iso_path
search --set=root --file $iso_path
loopback loop $iso_path
echo 'Lancement de l'iso en cours, veuillez patienter..'
root=(loop)
configfile /boot/grub/loopback.cfg
loopback --delete loop
}
Testé sans souci avec les variantes Ubuntu actuelles (2019), Linux Mint 19.3 et Debian 10. Parfois, sur d'autres distributions, on a le menu mais ensuite le lancement échoue.
C'est pratique et rapide à mettre en œuvre (on ne change que le nom de l'iso) mais la distribution n'est pas localisée en français..
Ubuntu utilise le paquet 'casper' pour ses live-cd. Donc ce menu est valable aussi pour Linux-Mint et d'autres distributions basées sur Ubuntu.
menuentry ".. Xubuntu 20.04 LTS ...." {
set iso_path="/isos/xubuntu-20.04-desktop-amd64.iso"
search --set=root --file $iso_path
loopback loop $iso_path
echo 'Lancement de l'iso en cours, veuillez patienter..'
linux (loop)/casper/vmlinuz locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$iso_path boot=casper file=/cdrom/preseed/xubuntu.seed noprompt quiet splash --
initrd (loop)/casper/initrd
}
Pour vérifier, il faut ouvrir l'iso avec le gestionnaire d'archives (par clic droit) et regarder dans le dossier "casper".
Voici les lignes 'preseed' pour toutes les variantes d'Ubuntu :
Elle contient PhotoRec et Testdisk. Par contre, le gestionnaire de fichiers est un peu limité (il n'affiche pas les partitions non montées) - Téléchargement
À partir de la version 6. Basé maintenant sur Arch (au lieu de Gentoo).
Page de téléchargement - Manuel d'utilisation - Documentation Officielle SystemRescue ISO et grub2
menuentry "systemrescuecd Officiel" {
set iso_path="/isos/10_maintenance/systemrescuecd-6.0.0.iso"
search --no-floppy --label USB-ISOs --set=root
loopback loop $iso_path
echo 'Chargement du noyau Linux ...'
linux (loop)/sysresccd/boot/x86_64/vmlinuz img_label=USB-ISOs img_loop=$iso_path archisobasedir=sysresccd copytoram setkmap=fr-latin9
echo 'Chargement de initramfs ...'
initrd (loop)/sysresccd/boot/x86_64/sysresccd.img
}
menuentry "systemrescuecd Classique" {
set iso_path="/isos/10_maintenance/systemrescuecd-6.0.0.iso"
set root=(hd1,1)
loopback loop $iso_path
echo 'Chargement du noyau Linux ...'
linux (loop)/sysresccd/boot/x86_64/vmlinuz img_dev=/dev/sdb1 img_loop=$iso_path archisobasedir=sysresccd copytoram setkmap=fr-latin9
echo 'Chargement de initramfs ...'
initrd (loop)/sysresccd/boot/x86_64/sysresccd.img
}
Clonezilla vous permettra de cloner une partition vers une image ou une autre partition ou inversement.
linux (loop)/live/vmlinuz persistent boot=live findiso=$iso_path union=overlay username=user config components quiet noswap lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 edd=on nomodeset nodmraid ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" keyboard-layouts=fr ocs_live_batch=\"no\" vga=normal ip=frommedia nosplash toram=filesystem.squashfs timezone=Europe/Paris utc=yes initrd (loop)/live/initrd.img
linux (loop)/live/vmlinuz persistent boot=live findiso=$iso_path union=overlay username=user hostname=xenial config components quiet noswap lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 edd=on nomodeset nodmraid noeject ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" keyboard-layouts=fr ocs_live_batch=\"no\" vga=normal ip=frommedia nosplash toram=filesystem.squashfs timezone=Europe/Paris utc=yes net.ifnames=0 initrd (loop)/live/initrd.img
Ne connaissant aucune version livecd officielle, voici quelques distributions dérivées de Arch Linux (pas trouvé comment les lancer directement en français) :
Même si Debian est parent du projet Ubuntu, son lancement est différent car il n'utilise pas casper (pour connaître la version du vmlinuz et du initrd, il faut ouvrir l'iso avec votre gestionnaire d'archives).
Dérivées
Par rapport au menu standard, on définira une variable de plus : $isolabel. Pour la trouver, il faut ouvrir l'iso avec le gestionnaire d'archives (clic droit). Dans le dossier 'isolinux', il faut ouvrir 'isolinux.cfg' puis rechercher CDLABEL.
Après le lancement, il faut aller dans les paramètres de langue et région, faire les changements et relancer la session comme proposé (sans mot de passe).
Dérivées
menuentry "OpenMandriva" {
set iso_path=/isos/OpenMandrivaLx.4.1-plasma.x86_64.iso
set isoname=OpenMandrivaLx_4.1
loopback loop $iso_path
echo 'Lancement en cours, patientez ...'
linux (loop)/boot/vmlinuz0 root=live:LABEL=${isoname} iso-scan/filename=${iso_path} locale.LANG=fr_FR.UTF-8 vconsole.keymap=fr rd.live.image toram --
initrd (loop)/boot/liveinitrd.img
}
Un petit tour chez la grand-mère des distros. Pas réussi à lancer la version live depuis Grub.
Ce sont des distributions dédiées à une certaine utilisation. N'oubliez pas les paramètres généraux et les lignes en italiques sont celles qui sont différentes du menu de base.
elementary OS (basé sur Ubuntu) a son propre environnement baptisé Pantheon.
Page de téléchargement (pour tester, on peut mettre 0€ et utiliser le magnet/torrent)
Antix est une distribution pouvant tourner sur de vieux systèmes. Elle utilise notamment des environnements de bureau légers tels que IceWm et Fluxbox.
Page de téléchargement
Remarque : 'bootdev' et 'xres' sont à adapter à votre configuration.
Voici la configuration de base :
menuentry "Windows 10" --class windows --class os {
# Insert modules needed in order to access the iso-file
insmod part_gpt
#insmod part_msdos
insmod ntfs
#insmod ext2
# Insert module needed in order to find partition
insmod search_fs_uuid
# Set UUID of partition with the iso-image
# and let grub2 find the partition
# (save it's identifier to the variable $root)
set uuid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
search --no-floppy --set=root --fs-uuid $uuid
# Mount the iso image by addressing it with (partition)/path
set iso=/ISO_PATH/file.iso
loopback loop ($root)$iso
# boot (chain-load) the image using the cdboot.efi file located
# on the win10-image
chainloader (loop)/efi/microsoft/boot/cdboot.efi
}
Adaptation :
Pour lancer ses ISOs, on peut créer une clé USB bootable avec Grub dessus.
sudo blkid
Dans Gparted
sudo apt install grub-pc-bin grub-efi-amd64-bin
sudo mkdir /mnt/efi sudo mkdir /mnt/usb sudo mount /dev/sdc1 /mnt/efi sudo mount /dev/sdc2 /mnt/usb
sudo grub-install --no-floppy --boot-directory=/mnt/usb --removable --target=i386-pc /dev/sdc sudo grub-install --no-floppy --boot-directory=/mnt/usb --removable --target=x86_64-efi --efi-directory=/mnt/efi /dev/sdc
Pour faire fonctionner cette clé, il vous faudra rajouter un fichier dans /grub sur la clé: grub.cfg.
Voici un grub.cfg qui fonctionne:
insmod part_gpt
insmod part_msdos
insmod fat
insmod ext2
#insmod all_video
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod gfxterm
set gfxmode=1920x1080
set locale_dir=/grub/locale
set lang=fr_FR
insmod gettext
terminal_output gfxterm
insmod gfxmenu
insmod gzio
insmod loopback
insmod iso9660
insmod png
insmod jpeg
insmod font
loadfont /grub/fonts/unicode.pf2
loadfont /grub/themes/Crunchy-simple/ComicNeue_normal.pf2
loadfont /grub/themes/Crunchy-simple/ComicNeue_title.pf2
theme=/grub/themes/Crunchy-simple/theme-fog.txt
#timeout=4
default=1
background_image /grub/themes/Crunchy-simple/fog/foggy-forest.jpg
gfxpayload=keep
menuentry "------------------- MAINTENANCE -------------------" {
true
}
menuentry "... Gparted live" {
set iso_path="/gparted-live-1.0.0-5-amd64.iso"
search --set=root --file $iso_path
loopback loop $iso_path
echo 'Lancement en cours, veuillez patienter ...'
linux (loop)/live/vmlinuz findiso=${iso_path} boot=live union=overlay username=user config components noswap toram=filesystem.squashfs ip= net.ifnames=0 nosplash locales=fr_FR.UTF-8 keyboard-layouts=fr
initrd (loop)/live/initrd.img
}
menuentry "----------------- Linux à installer -----------------" {
true
}
menuentry ".... Xubuntu 20.04 LTS" {
set iso_path="/xubuntu-20.04-desktop-amd64.iso"
search --set=root --file $iso_path
loopback loop $iso_path
echo 'Lancement en cours, veuillez patienter ...'
linux (loop)/casper/vmlinuz locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$iso_path boot=casper file=/cdrom/preseed/xubuntu.seed noprompt quiet splash --
initrd (loop)/casper/initrd
}
menuentry "----------- Accès aux systèmes installés -----------" {
true
}
menuentry ".. Menu sur /dev/sda2 (e pour modifier)" {
set root='hd0,gpt2'
configfile /boot/grub/grub.cfg
}
menuentry " > » ETEINDRE « <" {
halt
}
Comme sur la clé, nous sommes sur une partition FAT32, nous pourrons modifier ce fichier sans avoir besoin d'être 'root'.
Le thème utilisé provient de cette page.
Si ce dossier est à la racine, peut-être avez-vous des problèmes de droits avec. Il vous suffit de changer l'appartenance du dossier avec la commande:
sudo chown -R $USER:$USER /isos
Plus haut, nous avons dit qu'il fallait ajouter les menus dans le fichier "/etc/grub.d/40_custom". Cela oblige à faire un update-grub après chaque modification.
La solution:
menuentry "===>> lancer mes isos" {
search --set=root --file /isos/grubiso.cfg
configfile /isos/grubiso.cfg
}
Maintenant, chaque modification de grubiso.cfg dans /isos est prise en compte sans nouvel update-grub !
Selon ce bug, pour les versions 19.10 et suivantes avec un grub en version 2.04 installé en mode EFI, cette fonctionnalité ne fonctionne plus.
Sans essayer de réinstaller grub en version 2.02, on peut lui demander de lancer cette version au démarrage ainsi:
sudo cp grubx64.efi /boot/efi/EFI/xubuntu/.
Note: Il faudra peut-être renouveller cette opération si grub s'est mis à jour vers une version 2.04 ou supérieure sans résoudre le problème.
Contributeurs principaux : Frombenny …